#include <stdio.h>
#include <string.h>
#include <errno.h>


#define PRINT(fmt, ...) \
	printf(fmt "\n", ##__VA_ARGS__)


#define PRINT_ERROR(fmt, ...) \
	PRINT("[ERROR]: %s(%d): " fmt, __func__, __LINE__, ##__VA_ARGS__)


#define PRINT_WARN(fmt, ...) \
	PRINT("[ WARN]: %s(%d): " fmt, __func__, __LINE__, ##__VA_ARGS__)


#define PRINT_INFO(fmt, ...) \
	PRINT("[ INFO]: %s(%d): " fmt, __func__, __LINE__, ##__VA_ARGS__)


#define PRINT_DEBUG(fmt, ...) \
	PRINT("[DEBUG]: %s(%d): " fmt, __func__, __LINE__, ##__VA_ARGS__)


#define PERROR(fmt, ...) \
	PRINT("[ERROR]: %s(%d): %s: " fmt, __func__, __LINE__, strerror(errno), ##__VA_ARGS__)

